In measurement systems such as digital oscilloscopes, consecutively sampled values of an applied waveform are digitized, stored in a memory, and then used to reconstruct the waveform as a displayable image (the “trace”) on a display device by reading and processing the stored values. The stored digital values are typically referred to as an acquisition record, the contents of which correspond to a definite time interval in the history of the applied waveform. The length of the time interval is largely determined by the number of addressable memory locations dedicated to signal acquisition and the rate at which the samples are acquired.
Many activities that are performed with an oscilloscope require that the displayed portion of the acquisition record be in some defined relationship to a detected event in the waveform, such as a rising or falling edge of the waveform, for example. The detected event is commonly referred to as a trigger, or trigger event. When the trigger event being detected is a condition of the waveform itself, the event is referred to as an internal trigger event. When the trigger event being detected is a condition outside of the waveform that has some relationship to the waveform being measured, such as another waveform, the event is referred to as an external trigger event. In response to a detected trigger event, some subset of the acquisition record is typically displayed to allow panning and zooming of the trace.
A technology known as “Jitter Free” technology has been patented by the assignee of the present application in U.S. Pat. No. 6,753,677, which is incorporated by reference herein in its entirety. Jitter Free technology may be used to correct for trigger jitter in an oscilloscope or other data acquisition system caused by horizontal noise and the imperfect response of the trigger event's analog signal paths. The Jitter Free method relies on standard triggering hardware to locate a trigger event in a waveform to within some small error, e.g., one nanosecond (ns) or less. Once the trigger event has been located, the Jitter Free method then processes the data acquired around the trigger event, optionally correcting the signal for various impairments in the signal path of the channel, and then locates the time of the trigger threshold crossing in the data. The time of the trigger threshold crossing may then be used for other purposes, such as, for example, plotting, making measurements and further signal processing.
With typical trigger modes, the user specifies a time window relative to the trigger event over which the waveform is to be sampled and stored in memory. This time window may or may not include the trigger event. In many applications, the time window does not include the trigger event. If the time window does not include the trigger event, the Jitter Free method cannot be used because no data surrounding the event remains, i.e., it has been overwritten. Therefore, the user's data may be compromised by the raw hardware limitations.
A typical triggered acquisition process for a real-time oscilloscope stores data in a circular buffer. When the trigger event occurs, the memory controller stores data samples until a number of post-trigger samples corresponding to the user-specified time window has been stored in the circular buffer. The memory controller then stops storing data samples. Because a circular buffer is used, if the number of post trigger samples is larger than the number of storage spaces in the circular buffer, then the information surrounding the trigger event, which are the oldest samples in the buffer, will be overwritten and therefore will not be available for correction by the Jitter Free method.
A need exists for a measurement system that captures and stores data surrounding a trigger event so that the data is available for subsequent processing, e.g., for correction via the Jitter Free method. A need also exists for a measurement system that captures and stores data surrounding a trigger event while ensuring that the data is not subsequently overwritten before it can be used, that captures and stores data within the user-specified time window, and that is efficient in terms of memory utilization.